gl renderer: Use scale_x/y when rendering clipped nodes
authorTimm Bäder <mail@baedert.org>
Sat, 19 Sep 2020 16:16:04 +0000 (18:16 +0200)
committerTimm Bäder <mail@baedert.org>
Thu, 24 Sep 2020 17:08:22 +0000 (19:08 +0200)
gsk/gl/gskglrenderer.c

index bb5b16688a5f80839a7b7c4e6adb1a2da2074b0f..e207c4a0f721aca50923322350e30f36934dfae8 100644 (file)
@@ -1332,17 +1332,18 @@ render_clipped_child (GskGLRenderer         *self,
   else
     {
       /* well fuck */
-      const float scale = ops_get_scale (builder);
+      const float scale_x = builder->scale_x;
+      const float scale_y = builder->scale_y;
       gboolean is_offscreen;
       TextureRegion region;
       GskRoundedRect scaled_clip;
 
       memset (&scaled_clip, 0, sizeof (GskRoundedRect));
 
-      scaled_clip.bounds.origin.x = clip->origin.x * scale;
-      scaled_clip.bounds.origin.y = clip->origin.y * scale;
-      scaled_clip.bounds.size.width = clip->size.width * scale;
-      scaled_clip.bounds.size.height = clip->size.height * scale;
+      scaled_clip.bounds.origin.x = clip->origin.x * scale_x;
+      scaled_clip.bounds.origin.y = clip->origin.y * scale_y;
+      scaled_clip.bounds.size.width = clip->size.width * scale_x;
+      scaled_clip.bounds.size.height = clip->size.height * scale_y;
 
       ops_push_clip (builder, &scaled_clip);
       if (!add_offscreen_ops (self, builder, &child->bounds,